package main

import "fmt"

func main() {

	// 循环

	// 1+2+3+...+100
	sum := 0

	// 1.初始化条件 i := 1
	// 2.判断条件是否为真, 如果为真, 执行循环体, 如果为假, 跳出循环 i < 100
	// 3.条件变化 i++
	// 4.重复2, 3, 4....
	for i := 1; i < 100; i++ {
		sum = sum + i
	}
	fmt.Println(sum)


	// 迭代
	str := "abc"
	// 通过 for 打印每个字符
	fmt.Println("通过 for 打印每个字符: ")
	for i := 0; i < len(str); i++ {
		fmt.Printf("str[%d]=%c\n", i, str[i])
	}

	// 迭代 默认返回2个值, 一个是元素的位置, 一个是元素本身
	fmt.Println("迭代1写法输出结果如下: ")
	for i, data := range str {
		fmt.Printf("str[%d]=%c\n", i, data)
	}

	fmt.Println("迭代3写法输出结果如下: ")
	for i := range str {
		fmt.Printf("str[%d]=%c\n", i, str[i])
	}

	fmt.Println("迭代4写法输出结果如下: ")
	for i, _ := range str {
		fmt.Printf("str[%d]=%c\n", i, str[i])
	}
}
